package immoc_collection.map.demo;

import java.util.ArrayList;
import java.util.List;

public class TestGeneric {

    /**
     * 使用泛型
     */
    public List<Course> courses;

    public TestGeneric() {
        this.courses = new ArrayList<Course>();
    }

    public void testAdd() {
        Course c1 = new Course("1", "大学语文");
        courses.add(c1);
        Course temp = courses.get(0);
        System.out.println("添加了新的课程： ID: " + temp.id + ":" + temp.name);

        // 无法添加其他类型的对象
//        String s = "我是一个字符串";
//        courses.add(s);

        Course c2 = new Course("2", "大学数学");
        courses.add(c2);
    }

    public void testForeach() {
        for (Course temp: courses) {
            System.out.println("添加了新的课程： ID: " + temp.id + ":" + temp.name);
        }
    }

    /**
     * 在泛型的集合中，既可以存入泛型的实列， 也可以存入泛型的子类的实例。
     */
    public void testAddChildClassType() {
        ChildCourse cc = new ChildCourse("4", "大学数学233413123");
        courses.add(cc);
    }

    public static void main(String[] args) {

        TestGeneric tg = new TestGeneric();
        tg.testAdd();
        tg.testAddChildClassType();
        tg.testForeach();
    }
}
